<?php
// src/Pyaf/GymBundle/Controller/AdminClaseController.php
namespace Pyaf\GymBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Pyaf\GymBundle\Entity\Clase;
use Pyaf\GymBundle\Entity\Alumno;
use Pyaf\GymBundle\Form\ClaseType;
use Symfony\Component\HttpFoundation\Request;


/**
 * Description of AdminClaseController
 *
 * @author Toshiba P755-S5272
 */
class AdminClaseController extends Controller{
    
       
    public function calendar2ProfesorAction($id) {
        
        $em = $this->getDoctrine()->getEntityManager();
        $clases = $em->getRepository('PyafGymBundle:Clase')->findAllOrderByNombre();
        $profesor = $em->getRepository('PyafGymBundle:Profesor')->find($id);
      
        return $this->render('PyafGymBundle:AdminClase:calendar2Profesor.html.php', 
                            array('idProfesor' => $id, 'Clases' => $clases,
                                  'Profesor' => $profesor));
    }
    
    public function list2ProfesorAction() {
        $em = $this->getDoctrine()->getEntityManager();  
        $profesores = $em->getRepository('PyafGymBundle:Profesor')->findAllOrderByNombre();
        $em->close();
        return $this->render('PyafGymBundle:AdminClase:list2Profesor.html.twig', array('profesores' => $profesores));
    }
    
    public function save2ProfesorAction($id) {
        $peticion = $this->getRequest();
        $horarios = $peticion->request->get('horariosCheckbox');

        if(!empty($horarios)){
            $em = $this->getDoctrine()->getEntityManager(); 
            $em->getRepository('PyafGymBundle:Clase')->almacenarCalendarioProfesor($id, $horarios);
        
            // guarda un mensaje para la siguiente petición (en un controlador)
            $this->get('session')->setFlash(
                                                'alertaProfesorActividadesSuccess',
                                                'Actividad/es asignadas con Exito!'
                                            );
        } else{
            $this->get('session')->setFlash(
                                                'alertaProfesorActividadesError',
                                                'Error al asignar Actividad/es!, o no se ha asignado ninguna, por favor vuelva a intentar.'
                                            );
        }
            return $this->redirect($this->generateUrl('admin_clase_profesor_list'));
    }
    
    public function show2ProfesorAction($id) {
        $em = $this->getDoctrine()->getEntityManager();
        $clases = $em->getRepository('PyafGymBundle:Clase')->findBy(array('profesor' => $id));
        $profesor = $em->getRepository('PyafGymBundle:Profesor')->find($id);
      
        return $this->render('PyafGymBundle:AdminClase:clases2Profesor.html.twig', 
                            array('idProfesor' => $id, 'Clases' => $clases,
                                  'Profesor' => $profesor));
    }
    
    public function disableClase2ProfesorAction($id) {
        $em = $this->getDoctrine()->getEntityManager();
        $em->getRepository('PyafGymBundle:Clase')->disableClase($id);
    }
    
    /*
     *************************************************************************** 
     */
    public function list2AlumnoAction() {
        $em = $this->getDoctrine()->getEntityManager();  
        $alumnos = $em->getRepository('PyafGymBundle:Alumno')->findAllOrderByNombre();
        $em->close();
        return $this->render('PyafGymBundle:AdminClase:list2Alumno.html.twig', array('alumnos' => $alumnos));
    }
    
    public function calendar2AlumnoAction($id) {
        
        $em = $this->getDoctrine()->getEntityManager();
        $clases = $em->getRepository('PyafGymBundle:Clase')->findAllOrderByNombre();
        $alumno = $em->getRepository('PyafGymBundle:Alumno')->find($id);
      
        return $this->render('PyafGymBundle:AdminClase:calendar2Alumno.html.php', 
                            array('idAlumno' => $id, 'Clases' => $clases,
                                  'alumno' => $alumno));
    }
    
    public function save2AlumnoAction($id) {
        $peticion = $this->getRequest();
        $horarios = $peticion->request->get('horariosCheckbox');
        
        if(!empty($horarios)){
            $em = $this->getDoctrine()->getEntityManager(); 
            $em->getRepository('PyafGymBundle:Clase')->almacenarCalendarioAlumno($id, $horarios);
            // guarda un mensaje para la siguiente petición (en un controlador)
            $this->get('session')->setFlash(
                                                'alertaAlumnoActividadesSuccess',
                                                'Actividad/es asignadas con Exito!'
                                            );
            return $this->redirect($this->generateUrl('admin_clase_alumno_list'));
        } else{
            return $this->redirect($this->generateUrl('admin_clase_alumno_calendar', array('id' => $id)));
        }

        
    }
    
    public function show2AlumnoAction($id) {
        $em = $this->getDoctrine()->getEntityManager();
        $clases = $em->getRepository('PyafGymBundle:Clase')->getClasesAlumno($id);
        $alumno = $em->getRepository('PyafGymBundle:Alumno')->find($id);
      
        return $this->render('PyafGymBundle:AdminClase:clases2Alumno.html.twig', 
                            array('idAlumno' => $id, 'Clases' => $clases,
                                  'alumno' => $alumno));
    }
    
    public function disableClase2AlumnoAction() {
        $peticion = $this->getRequest();
        $clase = new Clase();
        $em = $this->getDoctrine()->getEntityManager();
        $clase = $em->getRepository('PyafGymBundle:Clase')->findById($peticion->request->get('id_Clase'));
        
        $alumno = new Alumno();
        $alumno = $em->getRepository('PyafGymBundle:Alumno')->findAlumno($peticion->request->get('id_Alumno'));
        $clase->removeAlumno($alumno);
        $clase->setNroCama($clase->getNroCama()+1);
        
        $em->persist($clase);
        $em->flush();
    }
}

?>
